CPU protection RIngs CPU도 권한 모드를 가지고 있음.
사용자모드(user mode by applications): 일반 명령어 실행 가능
커널 모드(kernel mode by OS): 특권 명령어 실행과 원한느 작업 수행을 위한 자원 접근을 가능케하는 모드
intel CPU
ring 0를 커널 모드 ring 3을 사용자 모드라고 보통 지칭한다.
단순한 더하기 같은 경우는 사용자 모드에서 직접 CPU에 명령어 실행이 가능하지만,
I/O, 메모리 공간 접근 등은 커널 모드를 통해서 접근해야 한다.
시스템 콜을 통해서 명령어를 실행하는 순간 커널 모드로 실행되는 것이다
시스템 콜은 커널 모드에서 처리
참고)
kernel
OS의 핵심 기능을 OS kernel이라고 한다. 영어로는 알맹이라는 의미
shell 은 껍질이라는 뜻이다.
CS(코드 세그먼트 레지스터)CS는 로드 명령어를 이용해 직접적으로 설정할 수 없고, CALL과 같은 실행 흐름을 변화시키는 명령어에 의해서만
변경된다. 또한 CS는 코드로 변경시킬 수 있는 RPL 필드 대신, CPU 스스로에 의해서만 유지되는 CPL[Current
Privilege Level] 필드를 가진다. 이 2비트 길이의 CPL는 항상 CPU의 현재 특권과 일치한다.
시스템콜은 커널 모드로 실행 - 커널 모드에서만 실행 가능한 기능들이 있음
- 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야 한다.
- 시스템 콜은 운영체제 제공
사용자 모드와 커널 모드 <- CPU protection rings - 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함
참고)
응용 프로그래머와 시스템 프로그래머
응용 프로그래머: API를 이용해서 응용 프로그램을 제작
시스템 프로그래머: 운영체제 및 시스템 프로그램(shell/ API/ Systemcall) 하드웨어
정리운영체제는 시스템 콜 제공
프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API 제공
응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성
응용 프로그램이 실행되서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되서,
커널 모드로 변경되어 OS 내부에서 해당 명령이 실행되고, 다시 user 레벨로 돌아가서
응용프로그램이 실행